وبلاگ

صفحه اصلی >وبلاگ > مشاوره مهندسی نرم افزار چیست؟


مشاوره مهندسی نرم افزار چیست؟

به تاریخ •1399/4/30 مشاوره مهندسی نرم افزار چیست؟

نرم افزار، مجموعه ای از برنامه های رایانه ای، رویه ها و مستندات است که انجام کارهای مختلف بر روی یک سیستم رایانه ای را بر عهده دارد. عبارت “نرم افزار” برای نخستین بار توسط جان توکی در سال 1958 مورد استفاده قرار گرفت. در سطح بسیار ابتدایی، نرم افزار کامپیوتر، متشکل از زبان ماشین است که شامل گروهی از مقادیر دودویی بوده و دستورالعمل پردازنده را تعیین می کند. دستورالعمل پردازنده تغییر بیان از سخت افزار کامپیوتر در یک توالی از پیش تعریف شده می باشد. به طور خلاصه، نرم افزار کامپیوتر، زبانی است که اصطلاحاً به وسیلۀ آن یک رایانه، صحبت می کند. انواع مختلفی از نرم افزار های رایانه ای وجود دارد و باید دید اقسام اصلی آنها کدامند؟

نرم افزار‌ها از منظرهای مختلفی قابل دسته بندی و تقسیم می باشند و متخصصین علوم رایانه ای با توجه به ابعاد مختلف نرم افزار به ارائۀ تقسیم بندی های متفاوتی از این پدیدۀ فناورانه پرداخته اند.

 با توجه به این نکته که هر تقسیم بندی می بایستی فلسفه و فایده ای داشته باشد و از طرفی نرم افزار از دو بعد فنی و حقوقی نیز امکان دسته بندی دارد، آنچه در پی می آید بر آن است که نرم افزار را از منظرهای متفاوتی مورد دسته بندی و تحلیل قرار دهد تا زوایا و ابعاد فنی و حقوقی نرم افزار ، قدری روشن تر گردد؛ زیرا به نظر می رسد، میزان و شکل حمایت حقوقی با توجه به اجزا، مراحل و اقسام نرم افزار، متفاوت خواهد بود.

 ۱-تقسیم بندی های فنی نرم افزار

به جهت فنی و ابعاد مرتبط با علوم رایانه ای، نرم افزار ها را با توجه به معیارهای گوناگون از جمله هدف و مأموریت نرم افزار، زمینۀ استفاده، نوع نقش و عملکرد و یا کاربر نرم افزار، می توان مورد تقسیم بندی‌های مختلفی قرار داد. ذیلاً با توجه به معیارهای پیش گفته به بررسی انواع نرم افزارها از جهت فنی خواهیم پرداخت.

1-1-  نرم افزارهای پایه(Programming Software) :

این دسته از نرم افزارها، یکی از انواع معمول، شناخته شده و مورد علاقۀ کاربران در میان نرم افزار های کامپیوتری است . این نرم افزار در قالب ابزار بوده و به برنامه نویس در نوشتن برنامه های کامپیوتری کمک می کند. برنامه های کامپیوتری مجموعه ای از دستورات منطقی هستند که برای یک سیستم کامپیوتری، وظایف خاصی را انجام می دهند . ابزارهایی که به برنامه نویسان در ایجاد یک سیستم کامپیوتری کمک  می کنند، شامل ویرایشگر متن ، کامپایلرها و مترجم ها ست. کامپایلرها(مفسرها)، کد منبع را که در قالب یک زبان برنامه نویسی، نوشته شده اند به زبانی که کامپیوتر آن را می فهمد، ترجمه می کنند.(اغلب در قالب دو دویی). کامپایلرها چیزهایی را که به وسیلۀ رابط ها، تجمیع و تبدیل شده اند، تولید می کنند. دی باگرها( اِشکال زداها )، جهت بررسی و اشکال زدایی کدها استفاده می شوند. کد منبع، بعضاً یا به طور کامل، برای ابزارهای اشکال زدا (Debugging tool) که بر روی آنها اجرا شده و به جهت برطرف کردن هرگونه اشکال احتمالی به کار می روند، شبیه سازی  می شود. مترجم ها (Interpreters) برنامه ها را اجرا می کنند. آنها کد منبع و یا یک کد از پیش تالیف شده را اجرا و یا کد منبع را قبل از اجرا به یک زبان میانی ترجمه می کنند.

1-2-  نرم افزارهای سیستمی(System Software) :

این گونه از نرم افزارها به راه اندازی و اجرای سخت افزار رایانه ای و سیستم رایانه، کمک می کنند. نرم افزارهای سیستمی به سیستمهای عامل، درایورها، سرورها و برنامه های جانبی سیستمی(utilities) اطلاق می شود. نرم افزار سیستمی به یک برنامه نویس کاربردی در خصوص جداسازی و انتزاع زبان برنامه نویسی از سخت افزار، حافظه، و سایر اجزاء مرکب درونی یک رایانه، کمک  می کند تا خودش را درگیر زبان ماشین نکند. یک سیستم عامل، برای کاربرها، با یک پلت فرم، امکان اجرای برنامه های سطح بالا را فراهم می آورد.

میان افزارها و سیستم ورودی و خروجی بایوس، ابزاری را فراهم می کنند تا سخت افزار به کار گرفته شود.         

1-3-  نرم افزارهای کاربردی(Application Software) :

این قسم از نرم افزارها، کاربر نهایی را قادر می سازد تا امور معینی را به انجام رساند. نرم افزارهای مربوط به کسب و کار، پایگاههای داده و نرم افزارهای آموزشی، برخی از اشکال نرم افزارهای کاربردی هستند. همچنین واژه پردازهای مختلف که باید توسط کاربر، به انجام کارهای تخصصی اختصاص داده شوند، نمونه های دیگری از نرم افزارهای کاربردی هستند.

1-3-1-   بدافزارها (Malware):

بدافزار، اشاره به هر گونه نرم افزار مخرب داشته و یک طیف وسیع تر از نرم افزارهایی را در بر می گیرد که به هر شکل، تهدیدی برای امنیت رایانه می باشند. ابزارهای تبلیغاتی مزاحم، جاسوس افزارها، ویروس های رایانه ای، کرم های رایانه ای، اسب های تروجان و یا ترس افزارها، مصادیق نرم افزارهای مخرب می باشند. ویروس های رایانه ای، برنامه های مخربی است که به تنهایی قادر به تکثیر خود بوده و از یک رایانه به رایانۀ دیگر در محیط شبکه و یا اینترنت گسترش می یابند. کرم رایانه ای همین کار را انجام می دهد، تنها با این تفاوت که ویروس ها نیاز به یک برنامه میزبان  ضمیمه دارند و با آن گسترش می یابند، در حالی که در خصوص کرم ها لازم نیست تا خود را به برنامه ای ضمیمه کنند. تروجان نیز خود را تکثیر و اطلاعات را سرقت می کند. نرم افزارهای جاسوسی  می توانند بر فعالیت های کاربر بر روی یک رایانه، نظارت داشته و اطلاعات کاربر را بدون اینکه وی بفهمد، سرقت کنند.

1-3-2-   ابزارهای تبلیغاتی مزاحم(Adware) :

ابزارهای تبلیغاتی مزاحم نرم افزارهایی هستند که با استفاده از آن، تبلیغات اینترنی در فضای مجازی ، اجرا یا دانلود می شوند. برنامه نویسان، ابزارهای تبلیغاتی مزاحم را به عنوان وسیلۀ تولید درآمد خود طراحی می کنند. آنها، اطلاعات کاربر، مانند وب سایت هایی را که وی اغلب بازدید می کند و صفحاتی که به عنوان صفحۀ مورد علاقه، ثبت کرده را استخراج می کنند. تبلیغاتی که به عنوان پاپ آپ در صفحۀ نمایش شما ظاهر می شوند، ناشی از برنامه های تبلیغاتی مزاحم هستند که شما را ردیابی می کنند. اما ابزارهای تبلیغاتی مزاحم برای امنیت رایانه و یا حریم خصوصی کاربر، مضر نیست؛ بلکه داده ها را جمع آوری کرده و تنها به وسیلۀ پیشنهاد از طریق کلیک کاربر بر روی تبلیغات عمل می کنند.

برخی دیگر از نرم افزار ها در میان سایر نرم افزارهای رایانه ای، مانند نرم افزار مدیریت موجودی، برنامه‌ریزی منابع سازمانی ، نرم افزارهای جانبی و نرم افزار حسابداری وجود دارندکه در زمینۀ خاص اطلاعاتی و سیستم های مدیریت داده ها، کاربرد دارند. ذیلاً نگاهی گذرا به برخی از آنها، خواهیم داشت.

1-3-3-   نرم افزار انبار گردانی(Inventory Management Software) :

این نوع از نرم افزار به یک سازمان در ردیابی کالاها و مواد خود بر اساس کیفیت و کمیت کمک می کند. توابع مدیریت موجودی انبار شامل نقل و انتقالات  انبار داخلی و ذخیره سازی می باشد. این نرم افزار انبار کمک می کند تا یک شرکت در سازماندهی موجودی و بهینه سازی جریان کالا در سازمان خود بهتر عمل کرده و در نتیجه این امر به بهبود خدمات به مشتریان منجر می شود.

 

1-3-4-   نرم افزارهای جانبی (Utilities Software):

همچنان که مطابق عرف معمول خدمات نرم افزاری شناخته شده اند، این گونه از نرم افزارها در خصوص مدیریت سخت افزار رایانه و نرم افزارهای رایانه ای کمک می کنند. این فرآیند نرم افزاری، طیف محدودی از وظایف و عملکرد ها را بر عهدا دارد. یک پارچه سازهای دیسک سخت (Disk defragmenters)، نرم افزارهای سیستمی جانبی و ویروس یاب ها،  برخی از نمونه های متداول نرم افزار های جانبی هستند.

1-3-5-   نرم افزار پشتیبان و بازیابی اطلاعات(Data Backup and Recover Software):

یک نرم افزار پشتیبان و بازیابی اطلاعات  ایده آل، ویژگی هایی فراتر از کپی ساده از فایل های داده را فراهم می کند. این نرم افزار اغلب، نیازهای کاربر را در خصوص تشخیص موارد و زمان پشتیبانی و حمایت برنامه ها، برطرف می کند. نرم افزارهای پشتیبانی و بازیابی، سازمان مندی اصلی فایل را حفظ کرده و هرگونه بازیابی آسان از اطلاعات پشتیبانی شده را ممکن می سازد.

1-3-6-   نرم افزار های پردازش داده ها :

این مورد، رایج ترین زمینه برای تولید نرم افزار و استفاده از رایانه است. سیستم هایی نظیر حسابداری، انبارداری، حقوق و دستمزد و فروش، در این خصوص قابل ذکرند.

1-3-7-   نرم افزارهای شبیه سازی و مدل سازی :

به جهات اقتصادی و ایمنی و صرفه جویی در وقت، برای آموزش و تحقیق در بسیاری از موارد، از این قابلیت در رایانه استفاده می شود. آموزش خلبانی و طراحی بدنه اتومبیل و امثال اینها، مصادیق این دسته اند.

1-3-8-   نرم افزارهای سیستم خبره :

مقصود ساختن برنامه هایی است که بتواند کارهای هوشمندانه انسان نظیر گفتگو، ترجمه و تفسیر زبان و معاینه را انجام دهد. سیستم های باهوش مصنوعی، بر اساس منطق است و در آن از پایگاه دانش نیز علاوه بر پایگاه داده، استفاده می شود.

1-3-9-   نرم افزار های سیستم بی درنگ :

در این سیستم ها، عکس العمل بلافاصله صورت می گیرند. نرم افزار های بدین منظور بیشتر در مراکز تولیدی نظیر پالایشگاه مورد استفاده دارد که با بروز هر عامل و علامتی، بی درنگ عکس العمل نشان داده و به تنظیم فرآیند تولید می پردازد.

1-3-10-  نرم افزارهای سسیتم نهفته :

بسیاری از وسایل کوچک و بزرگ نظیر اسباب بازی، اتومبیل و تجهیزات پزشکی وجود دارند که در آنها کامپیوترهای ریزی به کار رفته است و با برنامه هایی که روی آنها نصب گردیده، کار آن دستگاه کنترل می شود.

۲-تقسیم بندی های حقوقی نرم افزار  

  با توجه به اینکه نرم افزار پدیده ای فنی بوده و در عین حال، دارای ارزش اقتصادی و مطلوبیت عرفی، می باشد، نیازمند مجموعۀ قواعد و حمایت های حقوقی است تا بتوان به وسیلۀ آن، روابط پدیدآورندگان و مالکان نرم افزار را با مشتریان و مصرف کنندگان تنظیم کرده و از بروز اختلافات و نابسامانی ها و همچنین سوءاستفادۀ ناقضان احتمالی حقوق صاحبان حق در این حوزه جلوگیری به عمل آورد. در این راستا دسته بندی نرم افزار از حیث محدوده و نحوۀ بهره برداری کاربران و مشتریان نرم افزار ، امری بسیار حائز اهمیت است که ذیلاً به آن پرداخته خواهد شد.

 

2-1-  نرم افزارهای سفارشی(Custom Software) :

 نرم افزاری  است که برای یک کاربر یا سازمان خاص طراحی شده و از آنجا که برای یک کاربر خاص ساخته شده است، مشخصات و ویژگی های آن مطابق با نیاز کاربر می باشد.

البته عبارت نرم افزار سفارشی نرم افزاری را به ذهن متبادر می کند که طی قرارداد سفارش اثر تولید شده. در واقع می توان نرم افزارها را به لحاظ حقوقی و از حیث دارنده حق به نرم افزارهایی که طی قرارداد سفارش تولید شده اند و نرم افزارهایی که طی رابطه کارگر و کارفرمایی تولید شده اند، از یک سو و از حیث دیگر  نرم افزار را به نرم افزارهایی که یک پدیدآورنده دارند در مقابل نرم افزارهایی که اثر مشترک محسوب می شوند؛ تقسیم بندی نمود.این در حالی است که به اعتبار دیگر نرم افزارها را می توان به اختصاصی و متن باز، تقسیم کرد. در واقع نرم افزار اختصاصی یا متن باز می تواند به اشکال مختلف و در روابط مختلف( از حیث نخستین دارنده حقوق) تولید شده باشد.

 

 2-2-  نرم افزارهای ردۀ عام(Off-the-Shelf Software) :

برخلاف نرم افزار های سفارشی، نرم افزار ردۀ عام، بدون در نظر گرفتن رده و کاربر خاص، خریداری می شود. این نرم افزار، ممکن است جهت منظوری خاص یا در خصوص نیازهای کاربری خاص، طراحی شده باشند و یا به این منظور تولید نشده باشند، لیکن قابلیت استفادۀ عام داشته باشند و طیف وسیعی از کاربران بتوانند با استفاده از آن نیاز خود را در زمینۀ مطلوب خودشان برطرف نمایند؛ بدون اینکه هیچ گونه هماهنگی و ارتباطی با طراح نرم افزار داشته باشند. در حقیقت شما هنگام خرید این نرم افزار، با شرایط قرارداد لیسانس آن، موافقت می کنید.

 

2-3-  نرم افزار رایگان(free Softwer):

نرم افزاری  است که یک کاربر، برای استفاده، تغییر و توزیع آن، آزاد  است. نرم افزار رایگان به طور کلی  بدون هزینه  از آب در می آید. لیکن هزینه ها مشتمل است بر توزیع، ارائه خدمات، و نگهدارای و پشتیبانی. واژۀ رایگان به آزاد بودن  نرم افزار از نظام کپی رایت، توزیع و جرح وتعدیل اشاره دارد.البته باید در نظر داشت، نرم‌افزارهای رایگان به طور رایگان قابل دانلود و استفاده هستند اما ممکن است لزوما قابلیت استفاده مجدد و تغییر و اصلاح توسط کاربر را نداشته‌باشند. هردو نوع  نرم‌افزارهای آزاد و نرم‌افزارهای متن‌باز در یک ویژگی مشترک هستند: همه‌ی کاربران آن ها باید به کدهای منبع دسترسی داشته باشند. بدین معنی که کدهای منبع این نرم‌افزارها به شخص یا شرکت خاصی اختصاص ندارند و می‌توان آن‌ها را به اشتراک گذاشت.

  

2-4- نرم افزارهای منبع باز و منبع بسته (Open Source and Closed Source Software):

در نرم افزارهای مدل منبع بسته، منبع نرم افزار برای عموم منتشر نشده است؛ در حالی که در نرم افزارهای منبع باز، کد منبع آن برای اصلاح و استفاده در دسترس است. نرم افزارهای منبع باز در قالب کد منبعشان در دسترس هستند و حق تغییر، بهبود و ارتقاء و بعضاً حق انتشار کد آن از طریق لیسانس های نرم افزار اعطا می شود. در جایی که نرم افزار برای عموم مردم تولید شده باشد به آن نرم افزار منبع باز اطلاق می شود؛ چه اینکه نرم افزار یاد شده توسط یک شرکت و یا توسط یک شخص تولید شده باشد.

2-5- نرم افزارهای اختصاصی (Proprietary Software) :

در نرم افزارهای اختصاصی، حقوق قانونی منحصراً برای دارندۀ حق تکثیر باقی مانده و اکثر نرم افزارهای اختصاصی به صورت منبع بسته در دسترس قرار می گیرند.

این نوع نرم‌افزارها متعلق به یک شرکت یا شخص حقیقی است و استفاده از آن‌ها مستلزم خرید یا کسب مجوز بهره‌برداری از دارنده است. دسترسی به کدهای منبع و تغییر آن‌ها توسط کاربر در نرم‌افزارهای اختصاصی، امکان‌پذیر نیست. مطابق شرایط و ضوابط آنچه که « موافقتنامه مجوز بهره‌برداری کاربر نهایی» نامیده می‌شود، کاربران مجاز به تکثیر، به اشتراک گذاشتن، تغییر، توزیع مجدد یا مهندسی معکوس کدهای منبع نیستند.

برخی فروشندگان نرم افزار، کد منبع نرم افزارهای اختصاصی را با دسترسی محدود، میان مشتریان توزیع می کنند.نرم افزار اختصاصی به شکل نرم افزار مشروط یا نرم افزار معرف (Demoware) خواهد بودکه کاربران جهت استفاده از آنها وجهی را پرداخت نمی کنند، و فی الواقع ترکیبی از نرم افزارهای رایگان و مشروط هستند. اینگونه نرم افزارها مشتمل بر هزینۀ بسته بندی نیست، زیرا در قالب بسته بندی بازاری ارائه نمی شوند؛ اینگونه نرم افزارها به صورت اینترنتی یا در قالب های سخت افزارهای حامل که نیاز به بسته بندی تجاری مجزا ندارند، به مشتریان ارائه می شوند. با این وجود ممکن است برنامه نویسان از شما بخواهند تا مبلغ اندکی را جهت استحقاق دریافت نسخه های پشتیبان و کمکی، بپردازید.

2-6- نرم افزارهای مشروط و نرم افزارهای جزئی :  (Shareware and Retail Software)

در حالی که نرم افزارهای مشروط به عنوان نسخۀ آزمایشی به کاربران عرضه می شود، نرم افزارهای جزئی به کاربران نهایی فروخته می شوند. با افزایش دسترسی به نرم افزارهای مشروط و رایگان بر روی اینترنت، بازار نرم افزارهای جزئی تغییر می کند. طراحان و فروشندگان، شروع به ارائۀ نرم افزارهایشان جهت فروش بر روی اینترنت می کنند. مکرراً نرم افزارهای مشروط به عنوان نرم افزاری غیر فعال(crippleware)، که در آنها ابعاد اصلی نرم افزار عمل نمی کنند و پس از اتمام دورۀ آزمایش به طور کلی از کار می افتند. اگرچه نرم افزار های مشروط قالب های بسیار مشهوری هستند که در این قالب، نرم افزارهای جزئی کاملاً  از این شهرت و تداول برخوردار نیست. برای مثال نرم افزار Microsoft office یک نرم افزار بسته بندی شدۀ جزئی است که می بایستی خریده شوند. نرم افزار های جزئی ممکن است به عنوان بستۀ تجهیزات اصلی تولید منتقل شوند (OEM) در حال حاضر طراحان نرم افزار، به تولید کنندگان بزرگ بر اساس یک قرارداد لیسانس یک نسخه از کپی نرم افزار را به ایشان تحویل می دهند تا قبل از خرید امکان نصب نرم افزار مزبور را بر روی دستگاه های رایانه خود نصب کنند. بنابراین در بسته های موسوم به (Box Package Form) یک نسخه کپی از نرم افزار مجوز دار از طریق  نمایندگی های مجاز به مشتریان تحویل داده می شود.

 

     2-7-  نرم افزار اختراعی و نرم افزار کپی رایتی : (Patent software and copy right software  )

نرم افزار ازجهت این که تابع احکام کدام رژیم حمایتی حقوقی باشد قابل دسته بندی است. دو نظام حقوقی معروف و نسبتاً جا افتاده برای اموال غیر مادی وجود دارد که جنبه بین المللی نیز یافته و کنوانسیون های متعددی در خصوص آنها به تصویب رسیده است. نظام حق مولف یا کپی رایت و نظام حق اختراع. یکی از معمولترین نظام های پیشنهادی برای حمایت از پدیدآورندگان نرم افزار، نظام حق مولف است. برخی مشابهت ها بین یک اثر ادبی همانند کتاب و یک برنامه رایانه ای به خصوص در ابتدای عمر مهندسی نرم افزار که به شکل پیشرفتۀ کنونی مطرح نبود، سبب شد قوانین کپی رایت بسیاری از کشورها، طوری اصلاح شوند که از نرم افزارهای رایانه ای نیز همانند آثار ادبی حمایت شود. این در حالی است که تفاوت های در موضوع و نیز عدم تناسب احکام حق مولف با نرم افزار موجب شده است نظرها به نظام حقوق صنعتی(حق اختراع) معطوف شود و البته حق اختراع نیز کاملاً برای نرم افزارها مناسب نبوده و نقطه ضعف هایی بر آن بار می شود.

2-8- نرم افزار مشاع و نرم فزار غیر مشاع :

    هرگاه اشخاص متعدد در پدیدآوردن نرم افزار ، مشارکت داشته باشند، چنانچه سهم مشارکت هریک در پدیدآوردن نرم افزار مشخص باشد، حقوق مادی حاصل از آن به نسبت مشارکت به هریک تعلق می گیرد. در صورتی که کار یکایک آنان جدا و متمایز نباشد، اثر مشترک نامیده می شود و حقوق ناشی از آن، حق مشاع پدیدآورندگان است. البته باید خاطر نشان کرد که هریک از شرکا به تنهایی یا همه آنها به اتفاق می توانند در مورد نقض حقوق موضوع قوانین مربوطه به مراجع قضایی، مراجعه کنند.

2-9- نرم افزار مکمل و نرم افزار سازگار :

 یکی از حقوقی که همیشه در مورد نرم افزار و سایر آثار دارای حق مالکیت فکری مورد بحث و اختلاف نظر بوده است «حق تولید سازگار» است که در مورد آثار ادبی و هنری با عنوان تولید آثار اشتقاقی یا تلفیقی عنوان می‌شود. به زبان ساده، آثار اقتباسی آثاری هستند که ریشه در آثار قبلی دارند. اثر جدید اگر چه از نظر محتوا و شکل بیان دارای اصالت است اما برخی از عناصر را از اثر پیشین کسب کرده است. این امر در نرم افزار‌ها نیز بسیار رایج است. در برخی از نظام های حقوقی ، استفاده از نرم افزارهای دیگر برای ایجاد نرم افزارهای سازگار و مکمل که قابلیت ها و ظرفیت ها یا کاربری جدید ایجاد کند بلا مانع است و نقض حقوق پدیدآورنده نرم افزارهای دیگر محسوب نمی شود؛ مشروط بر اینکه پدیدآورنده نرم افزار سازگار و مکمل، رضایت کتبی پدیدآورندگان نرم افزارهایی که برای نخستین بار درآن کشور، تولید شده است را گرفته باشد.

2-10- نرم افزارهای واسط و غیر واسط :

ماده 4 قانون حمایت از پدیدآورندگان نرم افزارهای رایانه ای چنین مقرر داشته که :

« حقوق ناشی از آن بخش از نرم افزاری که به واسطه نرم افزارهای دیگر پدید می آید متعلق به دارنده حقوق نرم افزارهای واسط نیست».

منظور از واسط، آن چیزی است که میان یک نرم افزار با نرم افزار دیگر یا سخت افزار ارتباط ایجاد می‌کند زیرا یک نرم افزار به تنهایی کاری نمی‌تواند انجام دهد مگر اینکه از طریق واسط‌ها داده‌ها را بگیرد و از طریق سخت افزار در اختیار کاربر قرار دهد به عبارت دیگر اینکه کاربر چگونه از صفحه کلید یا صفحه نمایش با سخت افزار یا نرم افزار سیستم ارتباط بر قرار کند، به ماهیت آن جزء از برنامه بستگی دارد که واسط کاربر آن است.

 اغلب دعاوی، ادعای کپی شدن بخشی از برنامه است که عمدتا شامل همین واسط‌ها است. اما نکته خاصی که در برخی آراء مورد توجه قرار گرفته است، محدودیت‌های اجباری است که در تولید نرم افزار جدید اتفاق می‌افتد. عوامل ثابتی که در این صنعت وجود دارد، خواه نا‌خواه منجر به شباهت برخی از بخش‌ها و ساختار‌ها می‌گردد زیرا مشخصات رایانه‌ای که به وسیله آن نرم افزار طراحی می‌شود، استانداردهای طراحی، تقاضاهای موجود در بازار و رویه‌های برنامه نویسی که به صورت عرف در آمده است، محدودیت‌هایی را در تنوع و تمایز محصول ایجاد کرده است.

همچنین در تعریف نرم افزارهای مذکور گفته اند، منظور از نرم افزارهای واسط یا رابط برنامه‌نویسی نرم‌افزار (به انگلیسی: Application Programming Interface یا API)‏ یا به صورت خلاصه رابط برنامه نویسی، رابط بین یک کتابخانه یا سیستم‌عامل و برنامه‌هایی است که از آن تقاضای سرویس می‌کنند.

رابط کارکردهایی را تعریف می‌کند که کتابخانه یا سیستم‌عامل می‌تواند ارائه دهد و مفهومی مجرد است. این کارکردها سپس در قالب یک نرم‌افزار یا کتابخانه پیاده‌سازی می‌شوند. به عبارت ساده‌تر، رابط برنامه‌نویسی مجموعه توابعی است که یک برنامه می‌تواند از یک برنامه دیگر فرا بخواند.

برای مثال مایکروسافت برای APIهای ویندوز مرجع‌هایی استاندارد دارد که با استفاده از آنها برنامه‌نویسان می‌توانند از قابلیت‌ها و سرویس‌های سیستم‌عامل در توسعه و نوشتن برنامه‌های کاربردی خود استفاده کنند.

همان‌طور که می بینیم از جهت حقوقی، نرم افزارهای واسط، نمی توانند مورد حمایت مضاعف واقع شده و به مناسبت تولید هر نرم افزار، مورد حمایت قرار گیرند.   

نتیجه گیری :

آنچه در سطور بالا آمد چشم اندازی از اقسام عمده نرم افزارها و نحوه توزیع آنها بود . امروزه نرم افزارهای رایانه ای به صورت گسترده متداول بوده و تصور رایانه ها بدون نرم افزار ها غیر ممکن است

و بدون نرم افزارها امکان استفاده از رایانه بدین سهولت وجود نخواهد داشت.

آنچه درخصوص رایانه ها جالب توجه است این است که آنها زبان مخصوص به خودشان را داشته و همچنین راه های مخصوص به خودشان را برای برقراری ارتباط با انسان دارند. به علاوه اینکه ابزار آنها برای برقراری ارتباط شامل انواع مختلف نرم افزار می شود.

لازم به ذکر است شناخت هرچه بیشتر انواع و اجزاء نرم افزارها از جهت فنی و علمی، به جهت موضوع شناسی دقیق تر، سبب افزایش سطح کیفی و کارآمد تر شدن حمایت های حقوقی از این پدیدۀ پیچیده و پر کاربرد معاصر، خواهد شد.